import { Plugin } from 'rollup';

export interface PluginOptions {
  /**
   * 完全忽略 scss 文件，不输出任何内容 (默认 false)
   *
   * @default false
   * @author chitanda
   * @date 2023-05-21 12:05:21
   * @type {boolean}
   */
  outEmpty?: boolean;
}

/**
 * 忽略 scss 文件的 import 编译
 *
 * @author chitanda
 * @date 2023-05-21 12:05:44
 * @return {*}  {Plugin}
 */
const plugin = (opts: PluginOptions = {}): Plugin => {
  return {
    name: 'ignore-scss-compiler',
    resolveId(source) {
      if (source.endsWith('.scss')) {
        return {
          id: source.replace('.scss', '.css'),
          external: opts.outEmpty ? null : true,
        };
      }
      return null;
    },
    load(id) {
      if (id.endsWith('.css') && opts.outEmpty === true) {
        return 'export default {}';
      }
      return null;
    },
  };
};

export default plugin;
